package com.ssm.service.impl;

import com.ssm.service.TheCardService;
import org.apache.axis.client.Call;
import org.apache.axis.encoding.XMLType;
import org.json.JSONObject;
import org.json.XML;
import org.springframework.stereotype.Service;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;

@Service
public class TheCardServiceImpl implements TheCardService {
    String userName="411300";
    //    管理员密码
    String passWord="411300vTZd18148h";
    //    用户身份证号
    String CardNum="410222199812150511";
    //    用户姓名
    String CardName="胡家浩";
    //    城市代码
    String postalCode="410200";
    //    社保卡号
    String cardNumber;
    //county区县代码，经办机构
    String county="41020022";
    //Bank服务银行
    String bank="95566";
    //人员类别
    String peltype="1";

    Call call;
    {
        try {
            call = (Call) (new org.apache.axis.client.Service()).createCall();
            call.setTargetEndpointAddress(new URL("http://10.120.1.18:7001/hnCardService/services/CardService"));
            call.setOperationName(new QName("http://ws.apache.org/axis2","allDsjk"));
            call.setUseSOAPAction(true);
            call.addParameter("xmlBoby", XMLType.XSD_STRING, ParameterMode.IN);
            call.setReturnClass(String.class);
        } catch (ServiceException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
    }
//缴费登记
    @Override
    public String allDsjkPay() throws RemoteException {
        String str="<操作*>交费登记</操作*><用户名*>"+userName+"</用户名*><密码*>"+passWord+"</密码*><社会保障号码*>"+CardNum+"</社会保障号码*><城市代码>"+postalCode+"</城市代码*>";
        Object object="";
        object=call.invoke(new Object[]{str});
        return object.toString();
    }

    //即制卡标注
    @Override
    public String allDsjkmark() throws RemoteException {
        String str="<操作*>即制卡标注</操作*><用户名*>"+userName+"</用户名*><密码*>"+passWord+"</密码*><城市代码*>"+postalCode+"</城市代码*><社会保障号码*>"+CardNum+"</社会保障号码*><姓名*>"+CardName+"</姓名*>";
        Object object="";
        object=call.invoke(new Object[]{str});
        return object.toString();
    }
    //撤销标注
    @Override
    public String allDsjkCancellationmark() throws RemoteException {
        String str="<操作*>撤销标注</操作*><用户名*>"+userName+"</用户名*><密码*>"+passWord+"</密码*><城市代码*>"+postalCode+"</城市代码*><社会保障号码*>"+CardNum+"</社会保障号码*><姓名*>"+CardName+"</姓名*>";
        Object object="";
        object=call.invoke(new Object[]{str});
        return object.toString();
    }
    //即制卡人数
    @Override
    public String allDsjknum() throws RemoteException {
        String str="<操作*>即制卡人数</操作*><用户名*>"+userName+"</用户名*><密码*>"+passWord+"</密码*><城市代码*>"+postalCode+"</城市代码*><所属区县>"+county+"</所属区县><经办机构>"+county+"</经办机构><服务银行>"+bank+"</服务银行><人员类别>"+peltype+"</人员类别><申请类型>3</申请类型><社会保障号码>"+CardNum+"</社会保障号码>";
        Object object="";
        object=call.invoke(new Object[]{str});
        return object.toString();
    }
    //即制卡人员
    @Override
    public String allDsjkpeople() throws RemoteException {
        String str="<操作*><用户名*>"+userName+"</用户名*><密码*>"+passWord+"</密码*><城市代码*>"+postalCode+"</城市代码*><所属区县>"+county+"</所属区县><经办机构>"+county+"</经办机构><服务银行>"+bank+"</服务银行><人员类别>"+peltype+"</人员类别><申请类型>3</申请类型><社会保障号码>"+CardNum+"</社会保障号码>";
        Object object="";
        object=call.invoke(new Object[]{str});
        return object.toString();
    }
        //获取批次号
    @Override
    public String getbatch() throws RemoteException {
        String str="<操作*>获取批次号</操作*><用户名*>"+userName+"</用户名*><密码*>"+passWord+"</密码*><所属区县*>"+county+"</所属区县*>";
        Object object="";
        object=call.invoke(new Object[]{str});
        JSONObject jsonObject = XML.toJSONObject(object.toString());
        String bitch = jsonObject.optString("批次号");
        return bitch;
    }
    //即制卡批次

    @Override
    public String allDsjkbatch() throws RemoteException {
        System.out.println(bank);
        String str="<操作*><用户名*>"+userName+"</用户名*><密码*>"+passWord+"</密码*><城市代码*>"+postalCode+"</城市代码*><所属区县>"+county+"</所属区县><经办机构>"+county+"</经办机构><服务银行>"+bank+"</服务银行><卡商*>8</卡商*><批次号*>5736486</批次号*><人数*>1</人数*>";
        Object object="";
        object=call.invoke(new Object[]{str});
        return object.toString();
    }
    //即制卡数据
    @Override
    public String allDsjkdata(String bitch) throws RemoteException {
        String str="<操作*><用户名*>"+userName+"</用户名*><密码*>"+passWord+"</密码*><批次号*>"+bitch+"</批次号*><社保卡号*>"+cardNumber+"</社保卡号*><社会保障号码*>"+CardNum+"</社会保障号码*>";
        Object object="";
        object=call.invoke(new Object[]{str});
        return object.toString();
    }
    //即制卡回盘
    @Override
    public String allDsjkBack(String bitch) throws RemoteException {
        String str="<操作*><用户名*>"+userName+"</用户名*><密码*>"+passWord+"</密码*><批次号*>"+bitch+"</批次号*><人数*>1</人数*>";
        Object object="";
        object=call.invoke(new Object[]{str});
        return object.toString();
    }
}
